@@ -0,0 +1,19 @@ |
||
1 |
+# -*- coding: utf-8 -*- |
|
2 |
+from __future__ import unicode_literals |
|
3 |
+ |
|
4 |
+from django.db import models, migrations |
|
5 |
+ |
|
6 |
+ |
|
7 |
+class Migration(migrations.Migration): |
|
8 |
+ |
|
9 |
+ dependencies = [ |
|
10 |
+ ('message', '0006_systemmessageinfo_src'), |
|
11 |
+ ] |
|
12 |
+ |
|
13 |
+ operations = [ |
|
14 |
+ migrations.AlterField( |
|
15 |
+ model_name='systemmessageinfo', |
|
16 |
+ name='src', |
|
17 |
+ field=models.IntegerField(default=0, help_text='\u7cfb\u7edf\u6d88\u606f\u7c7b\u522b', db_index=True, verbose_name='src', choices=[(0, '\u62cd\u7231\u7528\u6237\u7aef'), (1, '\u62cd\u7231\u6444\u5f71\u5e08\u7aef')]), |
|
18 |
+ ), |
|
19 |
+ ] |
@@ -88,7 +88,7 @@ class SystemMessageInfo(CreateUpdateMixin): |
||
88 | 88 |
title = models.CharField(_(u'title'), max_length=255, help_text=u'系统消息标题') |
89 | 89 |
content = models.TextField(_(u'content'), blank=True, null=True, help_text=u'系统消息内容') |
90 | 90 |
url = models.CharField(_(u'url'), max_length=255, blank=True, null=True, help_text=u'系统消息链接') |
91 |
- src = models.IntegerField(_(u'src'), choices=SRC, default=PAIAI_USER, help_text=u'系统消息类别') |
|
91 |
+ src = models.IntegerField(_(u'src'), choices=SRC, default=PAIAI_USER, help_text=u'系统消息类别', db_index=True) |
|
92 | 92 |
|
93 | 93 |
class Meta: |
94 | 94 |
verbose_name = _('systemmessageinfo') |
@@ -11,27 +11,30 @@ from utils.redis.rversion import delete_guest_entrance_control, set_guest_entran |
||
11 | 11 |
|
12 | 12 |
|
13 | 13 |
class LatestAppInfoAdmin(admin.ModelAdmin): |
14 |
- list_display = ('latest_adr_version_code', 'latest_adr_version_name', 'latest_adr_app', 'latest_adr_url', 'latest_ios_version_code', 'latest_ios_version_name', 'latest_ios_url', 'status', 'created_at', 'updated_at') |
|
14 |
+ list_display = ('latest_adr_version_code', 'latest_adr_version_name', 'latest_adr_app', 'latest_adr_url', 'latest_ios_version_code', 'latest_ios_version_name', 'latest_ios_url', 'src', 'status', 'created_at', 'updated_at') |
|
15 |
+ list_filter = ('src', 'status') |
|
15 | 16 |
|
16 | 17 |
def save_model(self, request, obj, form, change): |
17 | 18 |
obj.save() |
18 | 19 |
|
19 |
- # 更新安卓下载页面 |
|
20 |
- write_to_disk(render_to_string('page/download.tmpl.html', { |
|
21 |
- 'version': obj.latest_adr_version_name, |
|
22 |
- }), settings.DOWNLOAD_ADR_PAGE_PATH) |
|
20 |
+ if obj.src == LatestAppInfo.PAIAI_USER: |
|
21 |
+ # 更新安卓下载页面 |
|
22 |
+ write_to_disk(render_to_string('page/download.tmpl.html', { |
|
23 |
+ 'version': obj.latest_adr_version_name, |
|
24 |
+ }), settings.DOWNLOAD_ADR_PAGE_PATH) |
|
23 | 25 |
|
24 |
- # 更新 iOS 下载页面 |
|
25 |
- write_to_disk(render_to_string('page/download.tmpl.html', { |
|
26 |
- 'version': obj.latest_ios_version_name, |
|
27 |
- }), settings.DOWNLOAD_IOS_PAGE_PATH) |
|
26 |
+ # 更新 iOS 下载页面 |
|
27 |
+ write_to_disk(render_to_string('page/download.tmpl.html', { |
|
28 |
+ 'version': obj.latest_ios_version_name, |
|
29 |
+ }), settings.DOWNLOAD_IOS_PAGE_PATH) |
|
28 | 30 |
|
29 | 31 |
# 设置最新 APP 信息 |
30 |
- set_latest_app() |
|
32 |
+ set_latest_app(obj.src) |
|
31 | 33 |
|
32 | 34 |
|
33 | 35 |
class SplashInfoAdmin(admin.ModelAdmin): |
34 |
- list_display = ('splash_image', 'spalash_image_airtime', 'spalash_image_deadline', 'status', 'created_at', 'updated_at') |
|
36 |
+ list_display = ('splash_image', 'spalash_image_airtime', 'spalash_image_deadline', 'src', 'status', 'created_at', 'updated_at') |
|
37 |
+ list_filter = ('src', 'status') |
|
35 | 38 |
|
36 | 39 |
|
37 | 40 |
class FeedbackInfoAdmin(admin.ModelAdmin): |
@@ -0,0 +1,29 @@ |
||
1 |
+# -*- coding: utf-8 -*- |
|
2 |
+from __future__ import unicode_literals |
|
3 |
+ |
|
4 |
+from django.db import models, migrations |
|
5 |
+ |
|
6 |
+ |
|
7 |
+class Migration(migrations.Migration): |
|
8 |
+ |
|
9 |
+ dependencies = [ |
|
10 |
+ ('operation', '0006_feedbackinfo_src'), |
|
11 |
+ ] |
|
12 |
+ |
|
13 |
+ operations = [ |
|
14 |
+ migrations.AddField( |
|
15 |
+ model_name='latestappinfo', |
|
16 |
+ name='src', |
|
17 |
+ field=models.IntegerField(default=0, help_text='\u6700\u65b0\u7248\u6765\u6e90', db_index=True, verbose_name='src', choices=[(0, '\u62cd\u7231\u7528\u6237\u7aef'), (1, '\u62cd\u7231\u6444\u5f71\u5e08\u7aef')]), |
|
18 |
+ ), |
|
19 |
+ migrations.AddField( |
|
20 |
+ model_name='splashinfo', |
|
21 |
+ name='src', |
|
22 |
+ field=models.IntegerField(default=0, help_text='\u542f\u52a8\u9875\u9762\u6765\u6e90', db_index=True, verbose_name='src', choices=[(0, '\u62cd\u7231\u7528\u6237\u7aef'), (1, '\u62cd\u7231\u6444\u5f71\u5e08\u7aef')]), |
|
23 |
+ ), |
|
24 |
+ migrations.AlterField( |
|
25 |
+ model_name='feedbackinfo', |
|
26 |
+ name='src', |
|
27 |
+ field=models.IntegerField(default=0, help_text='\u7528\u6237\u53cd\u9988\u6765\u6e90', db_index=True, verbose_name='src', choices=[(0, '\u62cd\u7231\u7528\u6237\u7aef'), (1, '\u62cd\u7231\u6444\u5f71\u5e08\u7aef')]), |
|
28 |
+ ), |
|
29 |
+ ] |
@@ -23,6 +23,14 @@ def upload_path(instance, old_filename): |
||
23 | 23 |
|
24 | 24 |
|
25 | 25 |
class LatestAppInfo(CreateUpdateMixin): |
26 |
+ PAIAI_USER = 0 |
|
27 |
+ PAIAI_LENSMAN = 1 |
|
28 |
+ |
|
29 |
+ SRC = ( |
|
30 |
+ (PAIAI_USER, u'拍爱用户端'), |
|
31 |
+ (PAIAI_LENSMAN, u'拍爱摄影师端'), |
|
32 |
+ ) |
|
33 |
+ |
|
26 | 34 |
latest_adr_version_code = models.IntegerField(_(u'latest_adr_version_code'), default=0, help_text=u'最新安卓版本号') |
27 | 35 |
latest_adr_version_name = models.CharField(_(u'latest_adr_version_name'), max_length=255, blank=True, null=True, help_text=u'最新安卓版本名') |
28 | 36 |
latest_adr_app = models.FileField(_(u'latest_adr_app'), upload_to=upload_path, blank=True, null=True, help_text=u'最新版安卓 APP') |
@@ -32,6 +40,8 @@ class LatestAppInfo(CreateUpdateMixin): |
||
32 | 40 |
latest_ios_version_name = models.CharField(_(u'latest_ios_version_name'), max_length=255, blank=True, null=True, help_text=u'最新 iOS 版本名') |
33 | 41 |
latest_ios_url = models.URLField(_(u'latest_ios_url'), max_length=255, blank=True, null=True, help_text=u'最新版 iOS 链接') |
34 | 42 |
|
43 |
+ src = models.IntegerField(_(u'src'), choices=SRC, default=PAIAI_USER, help_text=u'最新版来源', db_index=True) |
|
44 |
+ |
|
35 | 45 |
class Meta: |
36 | 46 |
verbose_name = _('latestappinfo') |
37 | 47 |
verbose_name_plural = _('latestappinfo') |
@@ -56,9 +66,18 @@ class LatestAppInfo(CreateUpdateMixin): |
||
56 | 66 |
|
57 | 67 |
|
58 | 68 |
class SplashInfo(CreateUpdateMixin): |
69 |
+ PAIAI_USER = 0 |
|
70 |
+ PAIAI_LENSMAN = 1 |
|
71 |
+ |
|
72 |
+ SRC = ( |
|
73 |
+ (PAIAI_USER, u'拍爱用户端'), |
|
74 |
+ (PAIAI_LENSMAN, u'拍爱摄影师端'), |
|
75 |
+ ) |
|
76 |
+ |
|
59 | 77 |
splash_image = models.ImageField(_(u'splash_image'), upload_to=upload_path, blank=True, null=True, help_text=u'启动页面图片') |
60 | 78 |
spalash_image_airtime = models.DateTimeField(_(u'spalash_image_airtime'), blank=True, null=True, help_text=u'启动页面图片开始日期') |
61 | 79 |
spalash_image_deadline = models.DateTimeField(_(u'spalash_image_deadline'), blank=True, null=True, help_text=u'启动页面图片截止日期') |
80 |
+ src = models.IntegerField(_(u'src'), choices=SRC, default=PAIAI_USER, help_text=u'启动页面来源', db_index=True) |
|
62 | 81 |
|
63 | 82 |
class Meta: |
64 | 83 |
verbose_name = _('splashinfo') |
@@ -91,7 +110,7 @@ class FeedbackInfo(CreateUpdateMixin): |
||
91 | 110 |
|
92 | 111 |
user_id = models.CharField(_(u'user_id'), max_length=255, blank=True, null=True, help_text=u'用户唯一标识') |
93 | 112 |
feedback = models.TextField(_(u'feedback'), blank=True, null=True, help_text=u'用户反馈') |
94 |
- src = models.IntegerField(_(u'src'), choices=SRC, default=PAIAI_USER, help_text=u'用户反馈来源') |
|
113 |
+ src = models.IntegerField(_(u'src'), choices=SRC, default=PAIAI_USER, help_text=u'用户反馈来源', db_index=True) |
|
95 | 114 |
|
96 | 115 |
class Meta: |
97 | 116 |
verbose_name = _('feedbackinfo') |
@@ -18,7 +18,9 @@ def upgrade_api(request): |
||
18 | 18 |
:param request: |
19 | 19 |
:return: |
20 | 20 |
""" |
21 |
- latest_app = get_latest_app() |
|
21 |
+ src = int(request.POST.get('src', 0)) |
|
22 |
+ |
|
23 |
+ latest_app = get_latest_app(src) |
|
22 | 24 |
|
23 | 25 |
if request.iOS: |
24 | 26 |
appinfo = { |
@@ -45,7 +47,9 @@ def splash_api(request): |
||
45 | 47 |
:param request: |
46 | 48 |
:return: |
47 | 49 |
""" |
48 |
- splashes = SplashInfo.objects.all() |
|
50 |
+ src = int(request.POST.get('src', 0)) |
|
51 |
+ |
|
52 |
+ splashes = SplashInfo.objects.filter(src=src, status=True) |
|
49 | 53 |
splashes = [splash.data for splash in splashes] |
50 | 54 |
|
51 | 55 |
return response(200, 'Get Splash Success', u'获取最新版信息成功', { |
@@ -14,16 +14,16 @@ r = settings.REDIS_CACHE |
||
14 | 14 |
# 最新 APP 相关 |
15 | 15 |
|
16 | 16 |
|
17 |
-def set_latest_app(): |
|
17 |
+def set_latest_app(src=0): |
|
18 | 18 |
""" 设置最新 APP 信息 """ |
19 | 19 |
try: |
20 |
- appinfo = LatestAppInfo.objects.all()[0].data |
|
20 |
+ appinfo = LatestAppInfo.objects.filter(src=src)[0].data |
|
21 | 21 |
except IndexError: |
22 | 22 |
appinfo = {} |
23 |
- r.set(LATEST_APP_INFO, json.dumps(appinfo)) |
|
23 |
+ r.set(LATEST_APP_INFO % src, json.dumps(appinfo)) |
|
24 | 24 |
return appinfo |
25 | 25 |
|
26 | 26 |
|
27 |
-def get_latest_app(): |
|
27 |
+def get_latest_app(src=0): |
|
28 | 28 |
""" 获取最新 APP 信息 """ |
29 |
- return json.loads(r.get(LATEST_APP_INFO) or '{}') or set_latest_app() |
|
29 |
+ return json.loads(r.get(LATEST_APP_INFO % src) or '{}') or set_latest_app(src) |
@@ -48,4 +48,4 @@ SYSTEM_MESSAGE_DELETED_INFO = 'system:message:deleted:info:%s' # STRING,系 |
||
48 | 48 |
GUEST_ENTRANCE_CONTROL_INFO = 'guest:entrance:control:info' # STRING,游客入口控制信息 |
49 | 49 |
|
50 | 50 |
# APP 相关 |
51 |
-LATEST_APP_INFO = 'latest:app:info' # STRING,最新 APP 信息 |
|
51 |
+LATEST_APP_INFO = 'latest:app:info:%s' # STRING,最新 APP 信息,src |